package 刷题10月.leecodehot100;
// https://leetcode-cn.com/problems/hamming-distance/
public class 位运算461汉明距离1017 {
    class Solution {
        public int hammingDistance(int x, int y) {
            // int s = x ^ y, ret = 0;
            // while (s != 0) {
            //     ret += s & 1;
            //     s >>= 1;
            // }
            // return ret;
            int a = x ^ y;//得到两数字二进制位不同的位置，将两个数异或即可
            int count = 0;
            while (a!=0) {
                a = a & (a - 1);//移位 去掉n最右边的一个1
                count++;
            }
            return count;
        }
    }

}
/*

//异或，然后找1的个数
class Solution {
    public int hammingDistance(int x, int y) {
        int xor=x^y;
        int count=0;
        while(xor!=0){
            xor=xor&(xor-1);
            count++;
        }
        return count;
    }
}

 */